﻿
namespace CPN.PJN.Common.Logging
{
    /// <summary>
    /// Cette interface définit le composant écrivant les logs
    /// </summary>
    public interface ILogWriter
    {
        /// <summary>
        /// Cette méthode configure le Logger à utiliser
        /// </summary>
        /// <param name="parameters">Liste des paramétres de configuration</param>
        void Configure(params string[] parameters);

        /// <summary>
        /// Cette méthode écrit le message de log
        /// </summary>
        /// <param name="message">Message de log</param>
        void Write(object message);

        /// <summary>
        /// Cette méthode écrit le message de log dans une catégorie précise
        /// </summary>
        /// <param name="message">Message de log</param>
        /// <param name="category">Catégorie de log</param>
        void Write(object message, string category);

        /// <summary>
        /// Cette méthode écrit le message de log dans une catégorie précise et sa sévérité
        /// </summary>
        /// <param name="message">Message de log</param>
        /// <param name="category">Catégorie de log</param>
        /// <param name="severity">severité</param>
        void Write(object message, string category, int severity);
    }
}
